Electronic devices can communicate to each other through a network. One way to communicate in the network is by sending packets of information. Typically, a packet contains a packet header and a payload of data. The payload of data is information that is being communicated between two electronic devices. The header has information that is used to forward the packet from a sending device to a receiving/destination device.
For a packet to reach a distant electronic device in a large network, the packet will cross different network links. The network links are terminated at switches as well as other networking devices. A switch interfaces with the network through many ports that correspond to network links and other network devices. When the switch receives a packet on a port, the switch then routes the packet to another port to continue transmission along another link. Eventually, the packet will reach the receiving/destination device if no errors occur. The switch routes the packet based on a source address, a destination address, or other addresses in the packet header. The source address is the address of the electronic device that sent the packet and the destination address is the electronic device that is to receive the packet.
In one example, a switch may be connected to 100 ports. Over time, the switch will compile information in an address table to store a best port for routing a packet based on the destination address of the packet. For example, suppose that the switch assigns a port value of 24 to packets with a destination address of 1000. This assignment (along referred to as mapping) is set in the address table. Later, when the address of 1000 is received by the switch, the switch will search the address table and find that the port value of 24 is assigned to address 1000. The switch will route the packet to port 24 so that the packet will advance toward the destination device.
Sometimes the switch receives a packet with an address that is not in the address table. In this case, the switch is not able determine where to route the packet. To determine a port for an address not in the address table, the switch may flood multiple ports with the packet. The switch will flood multiple ports with the packet until the switch learns where a destination for the packet resides.
Flooding the ports with redundant messages impacts the throughput of the switch. Having to repeatedly process a redundant message to multiple ports interrupts the processing of received packets. To increase the odds of finding an address and avoiding flooding of the ports, relatively large address tables are designed into silicon chips. For example, a chip may contain four 32K address tables with each address table storing 32K addresses. Providing multiple address tables satisfies high forwarding rates that may require multiple copies of the same forwarding table.
New standards such as the Gigabit Passive Optical Networking (GPON) standard require increased numbers of switch ports that in turn require an address table with an increased size. The increases are required in order for a switch to provide adequate data throughput to satisfy the GPON standard. However, increasing the address table size above 32K entries impacts the cost of manufacturing a silicon chip. A better way to access memory may be desired.